1 REM******************* 2 REM HOME FINANCE AID 3 REM******************* 40 PRINT"[147]"CHR$(14): REM SET UPPER/LOWER CASE 50 SC=53281:BC=53280: REM SCREEN COLOR ADDRESS, BORDER COLOR ADDRESS 60 AM=0:IR=0:NY=0: REM AMOUNT, INTEREST RATE, # OF YEARS 65 PY=0:VY=0: REM # OF PAYMENTS, INVESTMENTS PER YEAR 70 GOSUB9000: REM SET SOUND PARAMETERS 75 LL$="": REM LAST LINE 80 GOSUB9300: REM PRINT INSTRUCTIONS 100 REM************ 101 REM MAIN MENU 102 REM************ 105 PRINT"[147]";:POKESC,7:POKEBC,7 107 PRINTTAB(3)" " 110 PRINTTAB(3)" [200][160][207][160][205][160][197][160][160][160][198][160][201][160][206][160][193][160][206][160][195][160][197] [193][160][201][160][196] " 115 PRINTTAB(3)" " 120 PRINTTAB(4)"[151]F1[146]-[196]ETERMINE [208]AYMENT FOR A LOAN" 140 PRINTTAB(4)"F3[146]-[195]ALCULATE [198]UTURE [214]ALUE OF AN" 150 PRINTTAB(7)"[201]NVESTMENT" 170 PRINTTAB(4)"F5[146]-[195]ALCULATE [198]UTURE [214]ALUE OF AN" 180 PRINTTAB(7)"[197]QUAL [208]ERIODIC [201]NVESTMENT" 190 PRINTTAB(4)"[151]F6[146]-[208]RINT [200]ARDCOPY [201]MAGE OF" 195 PRINTTAB(7)"[195]URRENT [211]CREEN" 200 PRINTTAB(4)"F7[146]-[197]ND" 210 GETO$:IFO$=""THEN210 220 IFO$=CHR$(133)THENGOSUB9100:GOSUB1000:GOTO100 230 IFO$=CHR$(134)THENGOSUB9100:GOSUB2000:GOTO100 240 IFO$=CHR$(135)THENGOSUB9100:GOSUB3000:GOTO100 245 IFO$=CHR$(139)THENGOSUB9100:GOSUB60000:GOTO100 250 IFO$=CHR$(136)THENGOSUB9100:PRINT"[147]":END 260 GOSUB9200 270 GOTO210 1000 PRINT"[147]";:POKESC,11:POKEBC,3 1005 PRINTLL$TAB(28)"[158]F7[146]-[205]ENU" 1010 PRINTTAB(6)"[158][196][197][212][197][210][205][201][206][197][160][208][193][217][205][197][206][212][160][198][207][210][160][193][160][204][207][193][206]" 1030 PRINTTAB(13)"[158][204]OAN [193]MOUNT "; 1035 N=AM:GOSUB8000 1040 IFD$=CHR$(136)THENRETURN 1045 AM=N 1050 PRINTTAB(4)"[158][193]NNUAL [201]NTEREST [210]ATE "; 1055 N=IR:GOSUB8000 1060 IFD$=CHR$(136)THENRETURN 1065 IR=N 1080 PRINTTAB(9)"[158][206]UMBER OF [217]EARS "; 1085 N=NY:GOSUB8000 1090 IFD$=CHR$(136)THENRETURN 1095 NY=N 1100 PRINTTAB(7)"[158][208]AYMENTS PER [217]EAR "; 1105 N=PY:GOSUB8000 1110 IFD$=CHR$(136)THENRETURN 1115 PY=N 1130 I=IR/PY/100 1135 IFI=0THENI=1 1140 CA=AM/((1-1/(1+I)^(PY*NY))/I) 1150 PRINTTAB(10)"[158][208]AYMENT [193]MOUNT[153]";:N=CA:GOSUB8300 1160 PRINTTAB(11)"[158][201]NTEREST [208]AID[153]";:N=(CA*PY*NY)-AM:GOSUB8300 1170 PRINTLL$TAB(5)"[158]F1[146]-[193]GAIN F6[146]-[200]ARDCOPY F7[146]-[205]ENU" 1180 GETO$:IFO$=""THEN1180 1190 IFO$=CHR$(133)THENGOSUB9100:GOTO1000 1195 IFO$=CHR$(139)THENGOSUB9100:GOSUB60000:GOTO1180 1200 IFO$=CHR$(136)THENGOSUB9100:RETURN 1210 GOSUB9200:GOTO1180 2000 PRINT"[147]":POKESC,12:POKEBC,12 2005 PRINTLL$TAB(28)"F7[146]-[205]ENU" 2010 PRINTTAB(9)"[144][195][193][204][195][213][204][193][212][197][160][198][213][212][213][210][197][160][214][193][204][213][197]" 2020 PRINTTAB(12)"[207][198][160][193][206][160][201][206][214][197][211][212][205][197][206][212]" 2030 PRINTTAB(12)"[201]NVESTMENT [193]MOUNT "; 2035 N=AM:GOSUB8000 2040 IFD$=CHR$(136)THENRETURN 2045 AM=N 2060 PRINTTAB(9)"[193]NNUAL [201]NTEREST [210]ATE "; 2075 N=IR:GOSUB8000 2080 IFD$=CHR$(136)THENRETURN 2085 IR=N 2090 PRINTTAB(14)"[206]UMBER OF [217]EARS "; 2095 N=NY:GOSUB8000 2100 IFD$=CHR$(136)THENRETURN 2105 NY=N 2110 PRINTTAB(4)"[201]NTEREST [208]ERIODS PER [217]EAR "; 2115 N=PY:GOSUB8000 2120 IFD$=CHR$(136)THENRETURN 2125 PY=N 2140 I=IR/PY/100 2150 CA=AM*((1+I)^(PY*NY)) 2160 PRINTTAB(17)"[198]UTURE [214]ALUE[158]";:N=CA:GOSUB8300 2180 PRINTTAB(14)"[201]NTEREST [197]ARNED[158]";:N=CA-AM:GOSUB8300 2190 PRINTLL$TAB(5)"F1[146]-[193]GAIN F6[146]-[200]ARDCOPY F7[146]-[205]ENU" 2200 GETO$:IFO$=""THEN2200 2210 IFO$=CHR$(133)THENGOSUB9100:GOTO2000 2215 IFO$=CHR$(139)THENGOSUB9100:GOSUB60000:GOTO2200 2220 IFO$=CHR$(136)THENGOSUB9100:RETURN 2230 GOSUB9200:GOTO2200 3000 PRINT"[147]":POKESC,4:POKEBC,4 3005 PRINTLL$TAB(28)"[144]F7[146]-[205]ENU" 3010 PRINTTAB(3)"[144][195][193][204][195][213][204][193][212][197][160][198][213][212][213][210][197][160][214][193][204][213][197] [207][198][160][193][206][160][197][209][213][193][204]" 3020 PRINTTAB(10)"[208][197][210][201][207][196][201][195][160][201][206][214][197][211][212][205][197][206][212]" 3030 PRINTTAB(12)"[144][201]NVESTMENT [193]MOUNT "; 3035 N=AM:GOSUB8000 3040 IFD$=CHR$(136)THENRETURN 3045 AM=N 3060 PRINTTAB(9)"[144][193]NNUAL [201]NTEREST [210]ATE "; 3065 N=IR:GOSUB8000 3070 IFD$=CHR$(136)THENRETURN 3075 IR=N 3090 PRINTTAB(14)"[144][206]UMBER OF [217]EARS "; 3095 N=NY:GOSUB8000 3100 IFD$=CHR$(136)THENRETURN 3105 NY=N 3110 PRINTTAB(9)"[144][201]NVESTMENTS PER [217]EAR "; 3115 N=VY:GOSUB8000 3120 IFD$=CHR$(136)THENRETURN 3125 VY=N 3140 PRINTTAB(4)"[144][201]NTEREST [208]ERIODS PER [217]EAR "; 3145 N=PY:GOSUB8000 3150 IFD$=CHR$(136)THENRETURN 3155 PY=N 3170 I=IR/PY/100 3180 IFVY>=PYTHENCA=(AM*(VY/PY))*((((1+I)^(PY*NY+1)-1)/I)-1) 3190 IFVY0THENNEXT 3587 PRINTTAB(8)" [145]" 3590 RETURN 8000 REM************************ 8001 REM GET NUMERIC VALUE IN N 8002 REM************************ 8005 SD$="Y": REM DECIMAL POINT SWITCH 8010 N$="" : REM NUMBER STRING 8015 X=0:MS=1: REM FLASH CURSOR COUNTER AND SWITCH 8020 GETD$:IFD$<>""THENPRINT" [157]";:GOTO8045 8025 X=X+1:IFX<>15THEN8020 8030 IFMS=1THENPRINT" [157][146]"; 8035 IFMS=-1THENPRINT" [157]"; 8040 MS=MS*-1:X=0:GOTO8020 8045 IFD$=CHR$(20)THENGOSUB8400:GOTO8020 8050 IFD$=CHR$(136)THENGOSUB9100:RETURN 8055 IFD$=CHR$(13)ANDN$=""THEN8150 8060 IFD$=CHR$(13)THEN8200 8065 IFD$<>"."AND(D$<"0"ORD$>"9")THENGOSUB9200:GOTO8020 8070 IFD$="."ANDSD$="N"THENGOSUB9200:GOTO8020 8080 IFD$="."THENSD$="N" 8085 IFLEN(N$)=9THENGOSUB9200:GOTO8020 8090 PRINTD$; 8100 GOSUB9100 8110 N$=N$+D$ 8120 GOTO8020 8150 REM********************* 8151 REM USE PREVIOUS VALUE 8152 REM********************* 8160 N$=RIGHT$(STR$(N),(LEN(STR$(N))-1)) 8170 PRINTN$; 8200 REM********************************************************* 8201 REM IF VALUE IS ZERO, DISPLAY MESSAGE AND GO BACK FOR DATA 8202 REM********************************************************* 8210 IFVAL(N$)<>0THENN=VAL(N$):PRINT:GOSUB9100:RETURN 8220 PRINT"[218]ERO IS INVALID[146]";:GOSUB9200 8230 FORM=1TO1000:NEXT 8240 PRINT"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157] "; 8250 PRINT"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]"; 8260 GOTO8020 8300 REM************************************ 8301 REM ROUND N TO NEAREST CENT AND PRINT 8302 REM************************************ 8310 IFN<.005THENPRINT" .00":RETURN 8320 N$=STR$(N+.005) 8330 X=1 8340 IFMID$(N$,X,1)<>"."THENX=X+1:IFX<8THEN8340 8350 PRINTLEFT$(N$,(X+2)) 8360 RETURN 8400 REM************************************ 8401 REM DELETE PREVIOUS CHARACTER ROUTINE 8402 REM************************************ 8405 IFN$=""THENGOSUB9200:GOTO8490 8410 GOSUB9100 8420 PRINT"[157][160][157]"; 8425 IFRIGHT$(N$,1)="."THENSD$="Y" 8430 N$=LEFT$(N$,(LEN(N$)-1)) 8490 RETURN 9000 REM*********************** 9001 REM SET SOUND PARAMETERS 9002 REM*********************** 9010 S=54272 9015 FORX=0TO24 9020 POKES+X,0: REM CLEAR SID REGISTERS 9025 NEXT 9030 POKES+0,135: REM SET VOICE 2 FOR 9035 POKES+1,50 : REM "GOOD" SOUND (G-5) 9040 POKES+5,0 : REM NO ATTACK/DECAY 9050 POKES+6,240: REM MAX SUSTAIN/NO RELEASE 9060 POKES+7,135: REM SET VOICE 2 FOR 9065 POKES+8,8 : REM "BAD" SOUND (C-3) 9075 POKES+12,0 : REM NO ATTACK/DECAY 9080 POKES+13,240: REM MAX SUSTAIN/NO RELEASE 9090 RETURN 9100 REM*************** 9101 REM "GOOD" SOUND 9102 REM*************** 9110 POKES+24,15 :REM MAX VOLUME 9120 POKES+4,33 :REM TURN ON VOICE 1 WITH SAWTOOTH WAVE 9130 FORM=1TO20:NEXT 9140 POKES+4,0 :REM TURN OFF VOICE 1 9150 POKES+24,0 :REM TURN OFF VOLUME 9160 RETURN 9200 REM************** 9201 REM "BAD" SOUND 9202 REM************** 9210 POKES+24,15 :REM MAX VOLUME 9220 POKES+11,129:REM TURN ON VOICE 2 WITH NOISE WAVE 9230 FORM=1TO50:NEXT 9240 POKES+11,0 :REM TURN OFF VOICE 2 9250 POKES+24,0 :REM TURN OFF VOLUME 9260 RETURN 9300 REM********************* 9301 REM PRINT INSTRUCTIONS 9302 REM********************* 9310 PRINT"[147]";:POKEBC,14:POKESC,1 9315 PRINT"[154] "; 9320 PRINT"[146]"TAB(5)"[200][160][207][160][205][160][197][160][160][160][198][160][201][160][206][160][193][160][206][160][195][160][197] [193][160][201][160][196]" 9330 PRINT""TAB(3)"[212]HIS PROGRAM CAN HELP YOU TO MAKE" 9340 PRINTTAB(3)"FINANCIAL DECISIONS AT HOME. [202]UST" 9350 PRINTTAB(1)"FOLLOW THE MENU AND ON SCREEN PROMPTS." 9360 PRINT""TAB(2)"[213]SE  [196][197][204] [146] TO DELETE KEYING MISTAKES." 9370 PRINT""TAB(4)"[213]SE  [210][197][212][213][210][206] [146] TO RETAIN PREVIOUS" 9380 PRINTTAB(7)"AMOUNT ENTERED FOR PROMPT." 9390 PRINT""TAB(3)"[197]NTER THE INTEREST RATE AS A WHOLE" 9400 PRINTTAB(6)"NUMBER. [198]OR EXAMPLE, ENTER" 9410 PRINTTAB(12)"10.8% AS 10.8." 9460 PRINTLL$"[154] "; 9470 PRINT" [200]IT ANY KEY "; 9475 POKE2023,160:POKE56295,14 9480 GETO$:IFO$=""THEN9480 9485 GOSUB9100:IFO$=CHR$(139)THENGOSUB60000 9490 RETURN 60000 REM********************************* 60001 REM PRINT HARDCOPY IMAGE OF SCREEN 60002 REM********************************* 60010 SI$=CHR$(15):BS$=CHR$(8):PO$=CHR$(16) 60020 RV$=CHR$(18):RO$=CHR$(146):QT$=CHR$(34) 60030 REM MF$=CHR$(145):VR=PEEK(648)*256: REM FOR CURSOR UP MODE 60031 MF$=CHR$(17):VR=PEEK(648)*256: REM FOR CURSOR DOWN MODE 60040 OPEN4,4 60045 PRINT#4,PO$"19[170][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][180]"BS$ 60050 FORCL=0TO24:QF=0:AS$=MF$:FORRO=0TO39 60060 XC=PEEK(VR+40*CL+RO) 60070 IFXC=34THENQF=1-QF 60080 IFXC<>162THEN60110 60090 QF=1-QF:IFQF=1THENAS$=AS$+RV$+QT$:GOTO60170 60100 AS$=AS$+QT$+RO$:GOTO60170 60110 IFQF=1AND(XC>=128)THENXC=XC-128:GOTO60130 60120 IFXC>=128THENXC=XC-128:RF=1:AS$=AS$+RV$ 60130 IFXC<32ORXC>95THENAS=XC+64:GOTO60160 60140 IFXC>31ANDXC<64THENAS=XC:GOTO60160 60150 IFXC>63ANDXC<96THENAS=XC+32:GOTO60160 60160 AS$=AS$+CHR$(AS) 60170 IFRF=1THENAS$=AS$+RO$:RF=0 60175 GETO$:IFO$=CHR$(136)THEN60220: REM F7 WILL FORCE END OF PRINTING 60180 NEXTRO 60190 IFQF=0THENPRINT#4,SI$PO$"19[170]"AS$"[180]"BS$:GOTO60210 60200 PRINT#4,SI$PO$"19[170]"AS$"[180]"QT$BS$ 60210 NEXTCL 60215 PRINT#4,SI$PO$"19[170][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][180]"BS$ 60220 PRINT#4,SI$:CLOSE4 60230 RETURN